Об’єктно-орієнтоване програмування» на тему «Стандартна бібліотека шаблонів STL

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
ЗІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Розрахункова робота
Предмет:
ООП

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська політехніка» Кафедра АСУ / Звіт до розрахункової роботи з предмету «Об’єктно-орієнтоване програмування» на тему «Стандартна бібліотека шаблонів STL» Мета роботи: Ознайомитись зі структурою та функціональним призначенням класів C++ зі стандартної бібліотеки шаблонів STL (Standard Template Library), дослідити переваги їх використання у прикладних програмах. Послідовність роботи: 1. Ознайомитись з теоретичним матеріалом про стандартну бібліотеку шаблонів STL. 2. Для заданого варіанту завдання написати програму з використанням контейнерів, алгоритмів та ітераторів STL. 3. Визначити часові характеристики роботи програми (сумарний час на виконання кожного різновиду операції на прикладі з великою кількістю згенерованих випадковим чином об’єктів або операцій над ними (наприклад, 1000)). 4. Доповнити програму з ЛР № 5 аналогічними можливостями визначення часових характеристик роботи і обчислити їх значення на такому ж прикладі. 5. Зробити висновок про ефективність застосування контейнерів, алгоритмів та ітераторів STL. Індивідуальне завдання: 27. На основі контейнера vector побудувати одновимірний динамічний масив цілих чисел. Виконати операції введення елементів у масив, конкатенація двох масивів, злиття двох впорядкованих масивів зі збереженням впорядкованості, виведення масиву на екран. Тексти програм: Без використання контейнера: #include <iostream> #include <windows.h> #include <string.h> #include <time.h> using namespace std; template <class T> class mas { public: T *m; int size; mas(int newsize); ~mas(); void konkat(mas& A); void zlytya(mas& A); void sort(); friend ostream& operator>> <>(ostream&, mas&); friend istream& operator<< <>(istream&, mas&); }; template <class T> mas<T>::mas(int newsize) { m = new T[size = newsize]; for(int i=0; i<size; i++) m[i]=rand()/100.0; } template <class T> mas<T>::~mas() { delete [] m; } template <class T> void mas<T>::konkat(mas& A) { int hsize=size+A.size; T *k = new T[hsize]; int i=0; for(; i<size; i++) k[i] = m[i]; for(int j=0; j<A.size; i++, j++) k[i] = A.m[j]; delete [] m; size=hsize; m = k; } template <class T> void mas<T>::zlytya(mas& A) { sort(); A.sort(); int hsize=size+A.size; T *k = new T[hsize]; int i=0, v1=0, v2=0; while(i<hsize) { if(v1==size || v2==A.size) break; if(m[v1]<A.m[v2]) { k[i]=m[v1]; i++; v1++; } else { k[i]=A.m[v2]; i++; v2++; } } if(v1!=size) while(i<hsize) { k[i]=m[v1]; i++; v1++; } else if(v2!=A.size) while(i<hsize) { k[i]=A.m[v2]; i++; v2++; } delete [] m; m=k; size=hsize; } template <class T> void mas<T>::sort() { for(int i=0; i<size-1; i++) for(int j=i+1; j<size; j++) if(m[i]>m[j]) { T buf=m[i]; m[i]=m[j]; m[j]=buf; } } template <class T> istream& operator>>(istream& is, mas<T>& x) { cout<<"Введіть "<<x.size<<" елементів:\n"; for(int i=0; i<x.size; i++) is>>x.m[i]; return is; } template <class T> ostream& operator<<(ostream& os, mas<T>& x) { os<<"Вивід: "; for(int i=0; i<x.size; i++) os<<x.m[i]<<' '; os<<endl; return os; } void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); clock_t time; time = clock(); double vv; int N=10000; mas<int> V(N), F(N); V.konkat(F); V.zlytya(F); cout<<V; time = clock() - time; vv=(double)time/CLOCKS_PER_SEC; cout<<"Час: "<<vv<<"c."<<endl; getchar(); getchar(); } З використанням контейнера vector: #include <windows.h> #include <algorithm> #include <iostream> #include <vector> #include <time.h> using namespace std; void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); clock_t time; time = clock(); double vv; vector <int> v, w; vector <int>::iterator p, q; int x; int N=10000; for(int i=0; i<N; i++) { x=rand()/100.0; v.push_back(x); } for(int i=0; i<N; i++) { x=rand()/100.0; w.push_back(x); } for(p=w.begin() ; p!= w.end(); p++) v.push_b...
Антиботан аватар за замовчуванням

26.01.2014 22:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини